#include <klibc/string.h>


/*
 * Rilascia la lunghezza di una stringa
 */
size_t strlen(char *str)
{
	size_t x = 0;

	while(*str++!='\0') x++;
		
	return x;
}


/*
 * Copia una stringa in un altra
 */
void strcpy(char *str1, char *str2)
{
	while(*str2 != '\0')
	{
		*str1 = *str2;
		str1++; str2++;
	}
	*str1 = '\0';
}


/*
 * Unisce due stringhe
 */
void strcat(char *str1, char *str2)
{
	while(*str1 != '\0') str1++;
	
	while(*str2 != '\0')
	{
		*str1 = *str2;
		str1++;
		str2++;
	}
	*str1 = '\0';
}


/*
 * Confronta la stringa 1 con la stringa 2
 */
int strcmp(char *s1, char *s2)
{	
	while(1)
	{
		if(*s1 != *s2) return 1;
		else if(*s1 == '\0' && *s2 == '\0') return 0;
		s1++; 
		s2++;
	}
}



/*
 * Riempie un area di memoria di lunghezza len con il dato data
 */
void *memset(char *s, char c, size_t n)
{
	size_t i;
	
	for (i = 0; i < n; i++, s++)
		*s = c;
	
	return s;
}

